﻿using System;
using System.Linq;
using System.Web.UI.WebControls;
using App_Code.Clases;
using App_Code.Utilidades;
using SubSonic.Repository;

public partial class Mantenimiento_Categorias_EditarCategoria : System.Web.UI.Page
{
    SimpleRepository repository = new SimpleRepository("Electro",SimpleRepositoryOptions.None);
    protected void Page_Load(object sender, EventArgs e)
    {
        Validaciones.ValidarSession();
        if(!Page.IsPostBack)
        {
            var idCategoria = int.Parse(Request.Params[0]);
            var categoria = repository.Single<Categoria>(idCategoria);
            txtNombre.Value = categoria.Nombre;
            txtCodigo.Value = categoria.Codigo;
            var categorias = from c in repository.All<Categoria>()
                                select c;
            var categoriaList = categorias.ToList();
            categoriaList.Add(new Categoria(){Id = 0,Nombre = "Ninguna"});
            var padreSeleccionado = repository.Single<Categoria>(categoria.IdCategoria);
            categoriaPadre.DataSource = categoriaList;
            categoriaPadre.DataTextField = "Nombre";
            categoriaPadre.DataValueField = "Id";
            var indexSelect = 0;
            indexSelect = padreSeleccionado != null
                              ? categoriaPadre.Items.IndexOf(
                                    categoriaPadre.Items.FindByValue(padreSeleccionado.Id.ToString()))
                              : categoriaList.Count-1;
            categoriaPadre.SelectedIndex = indexSelect;
                
            categoriaPadre.DataBind();
        }
    }

    protected void Guardar(object sender, EventArgs e)
    {
        try
        {
            var idCategoria = int.Parse(Request.Params[0]);
            var categoria = repository.Single<Categoria>(idCategoria);
            categoria.Codigo = txtCodigo.Value;
            categoria.Nombre = txtNombre.Value;
            if(int.Parse(categoriaPadre.Value)!=0)
            {
                categoria.IdCategoria = int.Parse(categoriaPadre.Value);
            }
            else
            {
                categoria.IdCategoria = null;
            }
            repository.Update(categoria);
            Response.Redirect("/e-lectrodomesticos/Mantenimiento/Categorias/VerCategorias.aspx");
        }
        catch(Exception ex)
        {
            
        }
    }
}
